Agent system for mobile agents, computer network and method for downloading an agent system from a host computer to a client computer of a computer network

ABSTRACT

An agent system which can be loaded onto a computer in a network is adjusted based on the hardware and/or software of the computer. This makes it possible to incorporate even small mobile computers, in particular simple process computers, into a network in which agent systems are installed on the individual computers, without the power of the agent system needing to be significantly restricted in principle and without needing to dispense with the fundamental applicability of agent systems for small computers.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is based on and hereby claims priority to PCTApplication No. PCT/DE00/02705 filed on Aug. 11, 2000, German PatentApplication No. 199 39 058.4 filed on Aug. 18, 1999, the contents ofwhich are hereby incorporated by reference.

BACKGROUND OF THE INVENTION

The invention relates to an agent system, in particular an agent systemfor mobile agents, to a computer network having a plurality of computersnetworked by data lines and to a method for loading an agent system froma host computer onto a client computer.

Agents are autonomous, cooperative software units comprising code anddata. They are independently operating software units which require nocontinual interaction with the user. There are both static and mobileagents.

Mobile agents are known, by way of example, from U.S. Pat. No. 5,603,031and from the book Software Agents, Bradshaw Jeffrey, Menlo Park, Calif.:AAAI Press/The MIT Press, 1996. The chapter on mobile agents in thisbook can be retrieved in a slightly modified version on the Internet atthe address http://www.generalmagic.com/technology/techwhitepaper.html.

Mobile agents are programs which can be active at various stations in acomputer network and can change their location in the computer network.Conventionally, programs in a network are loaded from one computer ontoanother computer while they are not active. By contrast, mobile agentsare first activated and automatically change their position in thenetwork while they are active.

This small but fundamental difference with respect to conventionalprograms has considerable effects on the type of applications on themobile agents in the network. The agents are created at a particularstation in the network, which involves stipulating the functions needingto be performed by the agent, so that the agent, having been transmittedto another station in the network, represents the previous station inthe network and performs the appropriate functions. This means thatfunctions can be stipulated at one station in the network which areperformed at another station in the network. In principle, this is alsopossible with conventional systems, with this requiring a permanentexchange of information in the network between the two stations so thatthe station at which the appropriate control operations are stipulatedtransmits them to the station at which they are performed.

By contrast, the mobile agents require no such control operations, sincetheir functions are stipulated once in advance and are then performedautomatically. This significantly reduces the data throughput in thenetwork, with any desired operations being able to be performed at thestations remote from the task issuer.

However, the agents do not always need to operate fully detached fromtheir initiator, but rather can set up communication channels thereto oralso to other stations in the network.

When moving from one station in a network to another station in thenetwork, the mobile agents execute a migration command (e.g. “go”). Sucha command requires a destination description containing the name,address or type of the station to which the agent is intended to move,or a combination of these. Different stations do not always need to bearranged at different computers in the network. It is also possible foragents to be active at different stations within one computer.

Mobile agents can also multiply, so that they perform their functionsindependently of one another at different stations.

Mobile agents are frequently used for collecting predetermined data,some of which are evaluated in situ, so that an already preprocessedresult is sent to the original task issuer.

One possible application for such mobile agents arises, by way ofexample, when a purchaser of a particular object receives a low priceguarantee from the vendor. The purchaser can then send out one or moremobile agents which independently obtain corresponding offers from othersuppliers, possibly monitor them over a certain period of time and sendthem to the purchaser, so that he can compare them with the priceoffered by the vendor.

Other, known mobile agents and agent systems are marketed under thenames Aglets, Voyager and Concordia and can generally be obtained overthe Internet.

So that the mobile agents on the individual computers in the network canbe active, these computers need to have a respective “agent system”. Anagent system is a collection of service programs which need therespective agents for their tasks. These service programs generallycomprise an agent manager connected to other service programs, so thatthe active mobile agents can fall back on the respective computerresources and can migrate from one agent system in the network toanother agent system in the network via network interfaces. Generally,an agent system controller is provided which regulates the execution ofthe agent system on the respective computer.

These agent systems form the stations in the network at which the agentscan become active.

Such agent systems are generally written in a platform-independentcomputer language, such as JAVA, so that they can run on any computersystems.

The transfer of the agents in the network while they are active createsa new programming paradigm according to which the program code itself ismoved to the data needing to be processed instead of data beingtransported to the processing code or the processing code needing to beloaded in the inactive state onto the respective computer.

Agents are generally relatively small programs which are sent out andexploit the intelligence available in situ. Since mobile agents can alsoperform their tasks when there is no permanent network connectionbetween the individual computers, they are ideally suited to use onmobile computers, which are generally not permanently connected to anetwork.

However, the agent systems known to date are too extensive for them tobe able to be installed on arbitrary simple mobile computers.

Within the context of the present patent application, the term computeralso covers simple process computers equipped merely with a minimalhardware configuration (processor, memory and display). Such simpleprocess computers are integrated on a single chip, for example.

SUMMARY OF THE INVENTION

One possible object of the invention is to provide an agent system whichis able to offer the scope of functions of known agent systems and isnevertheless also suitable for small computers, such as small processcomputers.

Another possible object of the invention is to provide an appropriatecomputer network and a method for loading an agent system from a hostcomputer onto a client computer in a computer network.

The agent system, which can be installed on computers connected in acomputer network, has an agent platform and an agent system controller.The agent platform comprises service programs required by a mobile agentin order to be able to be executed on the respective computer. The agentsystem controller contains an agent system launcher which can be loadedonto a client computer independently of the rest of the agent system andis used for loading the agent system from a host computer.

The agent system is distinguished in that the agent system launcher isdesigned such that, before an agent system is loaded from a hostcomputer onto the client computer on which at least the agent systemlauncher is installed, an identifier describing the hardware and/orsoftware of the client computer is sent to the host computer, and aserver system, the agent system update program, installed on the hostcomputer is designed such that it takes the identifier describing thehardware and/or the software of the client computer as a basis forcompiling an agent system adjusted to the hardware and/or software ofthe client computer and loads this agent system onto the clientcomputer.

Within the context of the present invention, a host computer is anycomputer in the network from which it is possible to load an agentsystem onto another computer, which is referred to as a client computer.It is thus possible for any computer in the network to be a hostcomputer and a client computer, irrespective of its function otherwisein the network.

The agent system launcher, which sends an identifier identifying theclient computer to the host computer, and the agent system which isinstalled on the host computer and takes this identifier as a basis forcompiling an adjusted agent system and makes this adjusted agent systemavailable to the client computer make it possible for even small, inparticular mobile, computers, for example comprising a simple processcomputer or a personal digital assistant, to be incorporated into acomputer network and to be provided with the agent system, since thisagent system is automatically adjusted to the respective client computerand its power.

Typical criteria for adjustment are, by way of example, the display(e.g. color picture tube, color LCD screen, b/w LCD screen, smallalphanumeric LCD display or small numeric only display), the availablememory space and the available memory medium (RAM, hard disk or thelike) or the system software available on the computer (JAVA andderivatives thereof, Windows, Windows-CE, etc.).

The individual adjustment of the agent systems installed on therespective computer means that high powered computers can have agentsystems with a correspondingly high scope of performance installed onthem, and lower powered computers can have simplified agent systemsinstalled on them which are specifically tailored to the availablesoftware and hardware, including any peripheral units which areavailable.

Another advantage of the agent system is automatically adjusted to therespective environment or the computer and its installed software, sothat nobody need worry about the correct configurations of the agentsystems on the various computers in a network, even if it is not yetknown from the outset which terminals are present on the network. Thismeans that an environment can automatically develop in a network. Theindividual computers in the network need merely have agent systemlaunchers installed on them.

In a network in which a full agent system has been installed on a singlecomputer, it is sufficient, in principle, for only the agent systemlauncher to be installed on other computers onto which such an agentsystem is intended to be loaded, said agent system launcher thenrequesting, loading and starting an agent system adjusted to itsenvironment.

Another advantage of the agent system is that the agent system launchercan be provided with an update function which tests whether a hostcomputer is able to request a more recent version of the agent systemand, if this is possible, the more up to date version of the agentsystem is requested, loaded on the client computer and started. Sincesuch updates can generally rarely be performed, it is expedient for afull new agent system to be loaded in each case during an update. Withvery extensive agent systems which are regularly modified, it can beuseful to use the update function to test whether individual parts ofthe agent system on the host computer are more up to date than those onthe client computer, in which case possibly only individual parts of theagent system are then loaded from the host computer onto the clientcomputer.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other objects and advantages of the present invention willbecome more apparent and more readily appreciated from the followingdescription of the preferred embodiments, taken in conjunction with theaccompanying drawings of which:

FIG. 1 shows a network by which a plurality of computers are connectedtogether and on which a respective agent system has been installed,

FIG. 2 shows a block diagram of the design of an agent system, and

FIG. 3 shows a flowchart for the method for loading an agent system froma host computer onto a client computer in a computer network.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Reference will now be made in detail to the preferred embodiments of thepresent invention, examples of which are illustrated in the accompanyingdrawings, wherein like reference numerals refer to like elementsthroughout.

FIG. 1 is a simplified schematic illustration of a network having aplurality of computers 1 which are connected to one another by datalines 2. The computers 1 have different scopes of performance, that isto say that they can have different processor powers, storage capacitiesand/or system programs. The power of the individual computers 1 is shownsymbolically by the size of the rectangle representing the respectivecomputer 1. The computers 1 are numbered from I. to IV., where thecomputer I. can be the most powerful and the computer IV. is a mobileterminal. The data line 2 from the computer IV. to the other computersis a mobile radio link which is not maintained permanently. It istherefore shown using a dashed line in FIG. 1.

The individual computers 1 have a respective agent system AS-I. toAS-IV. installed on them. The network contains a few mobile agents AG-I.to AG-IV., which are either arranged on one of the computers 1 or movefrom one computer to another (III.→II.).

FIG. 2 is a schematic illustration of the design of an agent system. Theagent system has an agent platform 3 (also called platform) whichcomprises the service programs required by a mobile agent in order to beable to be executed on the respective computer 1. The agent platform 3has two central program parts, the agent manager 4 and the communicationmanager 5. The communication manager 5 comprises a blackboard 6 and aplurality of protocol managers 7 providing the protocols forcommunication between agent systems and their applications, the agents25. In addition, the communication manager allows the agents to migrate.A network coupling 8 is used by the protocol managers 7 to allow theappropriate use of a connected network 9. The blackboard 6 can be usedto buffer store data for the platform local communication betweenagents.

The agent manager 4 has a monitoring module 10 which is used to monitorinternal operations for applications 25 connected to the agent manager4. The monitoring information is processed by service programs, such asan agent software update program 11, a user manager 12, a securitymanager 13 and a resource manager 14. The agent manager 4 is alsoconnected to a read only memory 15, for example represented by a harddisk. The read only memory 15 is used to store configuration data andimportant runtime information, such as agents, so that these areavailable again even after temporarily switching off. In small mobilecomputers IV, it is also customary for this read only memory 15 to be inthe form of a semiconductor memory which can store data permanently,i.e. even after the computer has been switched off.

The agent manager 4 is provided with an administration interface 19 andan agent application interface 20. The administration interface 19 isused to connect the agent manager 4 to an agent system controller 21which has an administration program 22 and an agent system launcher 23 aand also an agent system update program 23 b. The agent system launcher23 a is a service program which assists a user when starting andinstalling an agent system. The agent system update program 23 b is aservice program which can take particular presets as a basis forcompiling an agent system and for sending it over the network 9. Theagent system update program 23 b is generally part of an existing agentsystem. However, it can also be installed on a computer independently ofan agent system.

The agent application interface 20 is used to connect the agent manager4 to an area of application 24 containing agents 25 which can executeparticular applications. The agents 25 can reach the area of application24 via the network 9, the communication manager 5 and the agent manager4. Alternatively, a user of the computer on which the available agentsystem has been installed can load them into the area of application 24using an agent launcher 26, and they can be activated in said area ofapplication. The agent launcher 26 is a service program which assists auser in creating and activating agents 25.

The administration program 22 of the agent system controller 21 assistsusers in configuring and diagnosing the agent system.

The agent system launcher 23 a of the agent system controller 21 is usedfor starting and loading the agent system onto a computer in thenetwork. The operations performed in this context are shown in theflowchart shown in FIG. 3.

In order for this method for loading an agent system onto a computer tobe possible, the computer onto which the agent system is being loadedand which is referred to below as the client computer 28 needs to havethe agent system launcher 23 a loaded on it. The client computer 28needs to be connected by a data line 2 to at least one computer on whichan agent system update program 23 b has been installed, so that thiscomputer, which is referred to below as the host computer 29, makes anadjusted or scaled copy of an agent system which is likewise availableon it and can load it onto the client computer 28. The data line 2 canbe an electronic or optical cable or a radio link.

The method for loading and updating an agent system is carried out bythe agent system launcher 23 a and is started in a step S1 (FIG. 3).This is followed by a test to determine whether an agent system ASalready exists on the computer (S2). If this test reveals that no agentsystem exists on the present computer yet, program execution passes tostep S3, which is part of a loading function 30 associated with theagent system launcher 23 a. In step S3, an identifier identifying thehardware and/or software of the client computer 28 is sent to the hostcomputer 29. This identifier contains statements relating to the powerof the hardware and/or the software, such as the size of the availablememory, the type of storage medium, the type of display and of theavailable system programs.

On the host computer, the identifier sent by the client computer 28 isassessed in a step S4, and an agent system is compiled in a step S5 onthe basis of the identifier. The agent system is adjusted by adding oromitting components which are suitable/required or not required andconfiguring and scaling the selected components for the hardware andsoftware available on the client computer 28. In addition, thecomponents are configured in terms of their dynamic complexity, which isessentially based on the size of data structures. Besides the agentmanager and the communication manager, the scalable service programs,such as the user manager 12, the security manager 13 and the resourcemanager 14, are adjusted, that is to say are scaled to the clientcomputer 28. Steps S4 and S5 are performed in the agent system updateprogram 23 b arranged in the agent system controller 21 on the hostcomputer 29.

When an agent system adjusted to the client computer 28 has beenconfigured, this adjusted agent system is sent from the host computer 29to the client computer in step S6. On the client computer 28, the agentsystem is received and loaded onto the client computer 28 in step S7.Step S7 is part of the loading function 30 of the agent system launcher23. When the agent system has been loaded from the client computer, itis started in step S8, and the method for loading the agent system isthen terminated in the subsequent step S9.

When the agent system is started in step S8, a starting andinitialization routine (step S9) is called and is used to start andinitialize the agent system. A startup sequence S10 is used to loadstored agents (step S11). “Normal” operation of the agent system canthen be executed, which is denoted by S12 in FIG. 3. If operation of theagent system needs to be terminated, the agents and runtime informationfor the agent system are first stored with a shutdown sequence (stepS13). The agents are then terminated and the agent system is terminated(step S14).

If, on the other hand, step S2 described above establishes that an agentsystem already exists on the client computer 28, program executionpasses to step S15, which tests whether updating of the agent system ispermitted. If updating of the agent system is not permitted, programexecution passes to step S16, which tests whether the agent system is inoperation. If the agent system is not in operation, it is started instep S8 and the agent system launcher 23 a is terminated in step S9. Ifthe agent system is already in operation, program execution passesdirectly to step S9, where the agent system launcher 23 a is terminated.

If the test in step S15 reveals that updating of the agent system ispermitted, program execution passes to step S17, which tests whether theagent system is in operation.

If the agent system is in operation, step S18 calls step S13 (shutdownsequence) in order to terminate the operation of the agent system. Asubsequent program loop (step S19) is used to test whether operation ofthe agent system has already ended. Only if the operation of the agentsystem has ended is program execution transferred to a step S20.

If the test in step S17 reveals that the agent system is not inoperation, program execution can pass directly to step S20.

With step S20, a version identifier is sent to the host computer 29. Theversion identifier contains the information relating to the versions ofthe agent system, and components thereof, installed on the clientcomputer 28.

On the host computer 29, the version identifiers are evaluated in stepS21 and, in the next step S22, version information for the most recentagent system, and components thereof, which can be loaded from the hostcomputer are sent to the client computer. In step S23, the clientcomputer 28 then compares its own version identifiers with the versioninformation and of the host and tests whether the respective versionwhich can be loaded from the host computer is more up to date than theversion of the agent system, and components thereof, which is on theclient computer. If the test reveals that the version which can beloaded from the host computer 29 is more up to date, program executionis transferred to step S3, whereupon an identifier identifying thehardware and/or software of the client computer 28 is in turn sent tothe host computer, and the latter then compiles an agent system adjustedthereto and sends it to the client computer 28. If, on the other hand,the test in step S23 reveals that the versions which can be loaded fromthe host computer are not more up to date than the versions of the agentsystem, and components thereof, which are on the client computer,program execution is transferred to step S8, where the agent system isstarted. Hence, it is possible to update (during operation) the entireagent system or, if required, merely parts thereof.

Steps S20 and S23 form an update function 31 which the agent systemlauncher 23 a uses to update an existing agent system.

The method for loading an agent system is carried out by the agentsystem launcher 23 a. The agent system launcher can be started manuallyat any time, irrespective of whether or not an agent system is availableor whether or not the agent system is in operation. The agent systemlauncher 23 a can also be activated automatically when it is firstloaded onto a computer or when a computer is started. If a full agentsystem already exists, then the agent system launcher 23 a can becontrolled directly by the user or by the administration program 22,with the administration program 22 being able to call it repeatedly,thus ensuring that the agent system is updated regularly and accordingto requirements.

To manage the agent systems on a plurality of mobile client computers28, a host computer 29 permanently connected to a network can beprovided. If, by way of example, a small mobile computer, the clientcomputer 28, having a black and white screen is to start an agentsystem, then the host computer 29 sends a request to the client computer28 and in so doing also transfers the current data relating to itsresources (e.g. b/w screen, 8 MB RAM, maximum number of windows whichcan be shown on the screen, Java Virtual Machine available, graphicaldisplay of characters, user management functionality in the agent systemfor one or more users, etc.). The host computer 29 uses this informationto compile an agent system which contains, by way of example, a Javaclass for printing specifically on b/w appliances. The equivalent classfor printing on appliances with a color screen or a screen which canshow only ASCII characters would have a different appearance. Dependingon a Java Virtual Machine (Persona Java, JDK1.x, 1.2, etc.) available onthe client computer 28, the appropriate classes are compiledautomatically. If only one user needs to be managed, as compared with aplurality, the appropriate class providing the user management is alsocorrespondingly smaller and has a smaller resource requirement on theclient computer 28.

The agent system can optionally be provided with a function whichautomatically tests the hardware and/or software of the respectivecomputer and starts the launcher 23 a if required. This means that theagent system can be adjusted dynamically to changes in the hardwareand/or in the software. This function can be provided by step S24 inFIG. 3, which follows step S17. Step S24 tests whether the hardwareand/or software has been changed since the agent system was lastupdated. If such a change is established, program execution passesdirectly to step S3, where an appropriate identifier is sent to the hostcomputer 29. If such a change is not established, the program passes tostep S20 and is executed in line with the description above. Theprograms on which the agent systems are based can be stored and sold onelectronically readable data stores.

The invention has been described in detail with particular reference topreferred embodiments thereof and examples, but it will be understoodthat variations and modifications can be effected within the spirit andscope of the invention.

1. An agent system which can be installed on computers connected in acomputer network, comprising: an agent platform which comprises serviceprograms required in order for the agent system to be executed on therespective computers, an agent system launcher to be loaded onto aclient computer independently of a reminder of the agent system and isused for loading the agent system from a host computer, such that,before the agent system is loaded from the host computer onto the clientcomputer, the agent system launcher sends an identifier identifying atleast one of client computer hardware and client computer software, theidentifier being sent to the host computer, and an agent system updateprogram to be installed on the host computer to selectively addcomponents to the agent system based on the identifier and at least oneof client computer hardware and client computer software, and then totransmit the agent system to the client computer.
 2. The agent system asclaimed in claim 1, wherein the agent system launcher is designed bothfor loading a full agent system and for loading parts of the agentsystem.
 3. The agent system as claimed in claim 2, wherein the agentsystem launcher tests at least one of hardware and software of theclient computer in order to produce the identifier.
 4. The agent systemas claimed in claim 3, wherein the agent system launcher compares aversion of a previous agent system installed on the client computer witha version of the agent system which can be loaded from the hostcomputer.
 5. The agent system as claimed in claim 4, wherein the agentsystem is an agent system for mobile agents.
 6. The agent system asclaimed in claim 1, wherein the agent system launcher tests at least oneof hardware and software of the client computer in order to produce theidentifier.
 7. The agent system as claimed in claim 1, wherein the agentsystem launcher compares a version of a previous agent system installedon the client computer with a version of the agent system which can beloaded from the host computer.
 8. The agent system as claimed in claim1, wherein the agent system is an agent system for mobile agents.
 9. Acomputer network having a plurality of computers, comprising: a hostcomputer; a client computer; data lines connecting the host and clientcomputers; and an agent system comprising: an agent system launcherloaded onto the client computer to send to the host computer anidentifier identifying at least one of client computer hardware andclient computer software and to subsequently load the agent system ontothe client computer, and an agent system update program installed on thehost computer to assemble the agent system by selectively addingcomponents, based on the identifier and at least one of client computerhardware and client computer software, and then to transmit the agentsystem to the client computer.
 10. The computer network as claimed inclaim 9, wherein at least one of the computers is a mobile computer. 11.The computer network as claimed in claim 10, wherein the mobile computeris connected to the computer network by a nonpermanent data line. 12.The agent system as claimed in claim 9, wherein the agent systemlauncher is designed both for loading a full agent system and forloading parts of the agent system.
 13. The agent system as claimed inclaim 9, wherein the agent system launcher tests at least one ofhardware and software of the client computer in order to produce theidentifier.
 14. The agent system as claimed in claim 9, wherein theagent system launcher compares a version of a previous agent systeminstalled on the client computer with a version of the agent systemwhich can be loaded from the host computer.
 15. The agent system asclaimed in claim 9, wherein the agent system is an agent system formobile agents.
 16. A method for loading a system from a host computer toa client computer, comprising: agent system launcher sending anidentifier identifying at least one of hardware and software of theclient computer, the identifier being sent from an agent system launcherloaded on the client computer, the identifier being sent to the hostcomputer; compiling an agent system adjusted to at least one of hardwareand software of the client computer based on the identifier received atthe host computer from the client computer, the agent system beingcompiled by an agent system update program on the host computer byselectively adding components; transmitting the agent system to theclient computer; and loading the agent system on the client computer bythe agent system launcher.
 17. The method as claimed in claim 16,wherein the agent system launcher first checks whether a previous agentsystem is already installed on the client computer, if the previousagent system is installed, the agent system launcher tests whether anupdate is possible or required and whether the previous agent system isin operation, and if an update is possible or required and the previousagent system is in operation, the operation of the agent system isterminated so that it can be updated.
 18. The method as claimed in claim17, wherein a call to the host computer involves the client computersending the identifier to the host computer and then receiving the agentsystem from the host computer.
 19. The method as claimed in claim 16,wherein a call to the host computer involves the client computer sendingthe identifier to the host computer and then receiving the agent systemfrom the host computer.
 20. The method as claimed in claim 19, furthercomprising: if a previous agent system is loaded on the client computer,determining whether the previous agent system should be updated; andupdating the previous agent system.
 21. The method as claimed in claim20, further comprising: testing whether an update is possible inprinciple; if an update is possible, sending a version identifier to thehost computer; sending to the client computer version informationindicating a most recent agent system which can be loaded from the hostcomputer; comparing the version identifier with the version information,and if the comparison reveals that the version which can be loaded fromthe host computer is more up to date than the version of the previousagent system which is on the client computer, updating the previousagent system.
 22. The method as claimed in claim 21, wherein comparingthe version identifier with the version information involves testingwhether separable parts of the agent system on the host computer aremore up to date than corresponding separable parts of the previous agentsystem on the client computer, and if separable parts on the hostcomputer are more up to date, then only the separable parts of theprevious agent system are updated.
 23. The method as claimed in claim22, wherein the identifier comprises information on the client computerselected from the group consisting of memory size, type of display,typical processing speed, type of network and system software used. 24.The method as claimed in claim 16, wherein the identifier comprisesinformation on the client computer selected from the group consisting ofmemory size, type of display, typical processing speed, type of networkand system software used.
 25. A method for loading a system from a hostcomputer to a client computer, comprising: sending an identifier fromthe client computer to the host computer, the identifier identifying atleast one of client computer hardware and client computer software;assembling an agent system based on at least one of client computerhardware and client computer software based on the identifier, the agentsystem being assembled at the host computer by selectively addingcomponents; transmitting the agent system to the client computer; andloading the agent system on the client computer.